package jp.seraph.jsade.model;

import jp.seraph.jsade.core.Player;
import jp.seraph.jsade.math.Angle;
import jp.seraph.jsade.math.AngleVelocity;

/**
 * AngleVelocityの演算機
 *
 *
 */
public interface AngleVelocityCalculator {
    /**
     * 引数に与えられた情報から、AngleVelocityを作成して返す。<br>
     * 一般にこのメソッドはDefaultPlayerが関節を目標角度に近づけるために使用される。
     *
     * @param aPlayer 対象の関節を持つプレイヤー
     * @param aTargetJoint 対象の関節
     * @param aTargetAngle 目標角度
     * @return 生成されたAngleVelocity
     */
    public AngleVelocity calc(Player aPlayer, JointIdentifier aTargetJoint, Angle aTargetAngle);
}
